using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SmartLink.DTOS;
using SmartLink.DTOS.Permission;
using SmartLink.Domain;
using SmartLink.DTOS.SysBasic;

namespace SmartLink.Application.IServices
{
    public interface IPermissionAppServices
    {

        DTOS.Results<TreeNode> GetRightMenuTree(int curUserId);
        DTOS.Results Add(InMenuDTO menuDto);
        DTOS.Results Update(UpDateMenuDto menuDto);
        DTOS.Results Delete(DeleteIDDto deleteDto);
        DTOS.Results<TreeNode> GetAllMenuTree();
        Results<TreeNode> GetAllMenuTreeByUserRight(int userId);
        Results<MenuDTO> GetSingleMenu(GetIDDTO getDTO);
        Results<IList<string>> GetActionPermissions(int userId);
        Results<IList<ActionPermissionGroupDTO>> GetActionPermissionGroups(int userId);
        Results<IList<int>> GetDataPermissions(int userId);
        DTOS.Results<TreeNode> GetAllMenuTreeByRole(int roldId, int UserId);

        Results AllotToRole(int roleId, IEnumerable<PermissionListItemViewDTO> model);
        /// <summary>
        /// 获取角色权限设置界面数据
        /// </summary>
        Results<IList<PermissionListItemViewDTO>> GetRolePermissionsToSetting(int roleId);
        /// <summary>
        /// 获取角色权限数据
        /// </summary>
        IList<PermissionListItemDTO> GetRolePermissions(int roleId);
    }
}
